1. Field of the Invention
This invention relates generally to an improved data processing system and, more particularly, to improved processing of a distributed data processing system. Still more particularly, this invention relates to a method, apparatus, system, or computer program product for monitoring a server using an agent on a client.
2. Description of Related Art
As the number of World Wide Web sites and the number of applications for the Internet continues to increase dramatically, the expectations of businesses and consumers with respect to the Internet become more demanding and sophisticated. Consumers expect businesses to provide quality service on their Web sites 24 hours a day, 7 days a week. Some business-to-consumer Web sites have suffered outages that became high-profile news events and generated significant consumer dissatisfaction. These businesses have responded by committing greater resources to the management of their information technology.
As the number of business-to-business ventures has increased, the repercussions for failing to meet a customer's expectations become more serious. Although a consumer-oriented business may have a general commitment to providing a high level of service, the business may not have a contractual agreement with its users to guarantee a particular level of performance or availability. However, business-to-business ventures are generally bound by contractual agreements, and as sophistication with networked systems has increased, a business may contractually guarantee its customers that an Internet application will perform to a specified quality of service. Otherwise, financial remedies may be invoked to recoup losses generated by the business's failure to deliver guaranteed quality of service. These types of arrangements place more pressure on the business's information technology management.
In order to determine the quality of service provided by an organization's data processing system at any given time, both system availability and system performance must be monitored. Although a system may be available such that transactions may be initiated and completed, the system should also deliver timely access. For example, the system should perform transactions within a short time period.
In response to this situation, some organizations have deployed enterprise-wide solutions that attempt to monitor information systems from within an organization's firewalls. While an organization may then have some level of confidence in its system's availability and performance, these types of solutions lack the fundamental ability to report the actual service received by a customer outside of the organization's own system.
As an alternative solution, an organization may deploy client machines at remote locations that mimic customer transactions. Agents on these client machines submit simulated transactions to the organization's servers across the Internet and then monitor the responses received from its servers. The system then periodically collects the client data from the remote locations for analysis. This solution has the advantage of allowing the organization to physically control the remote clients that generate the simulated transactions. This type of solution has been used so frequently that third-party vendors supply this type of quality of service monitoring by deploying and controlling the remote clients. The third-party can provide an independent, unbiased report of the quality of service delivered by the organization to client machines outside of the organization's immediate control. However, this type of solution still lacks the fundamental ability to report the actual service received by a customer. Since it is the customer to whom the organization guarantees a particular quality of service, a sophisticated customer may demand that a quality of service guarantee will be measured against the transactions actually generated by the customer.
As another solution, an organization may place a monitoring agent on each client machine that interacts with the organization's servers. The monitoring agent then monitors the Internet data traffic to and from the client machine. In particular, the monitoring agent watches for transactions that are initiated to the organization's servers. The completion and/or response time of those transactions are then logged by the monitoring agent and reported to the organization for analysis. While this type of solution provides the fundamental ability to report the actual service received by a customer's client machines, the monitoring agent is then outside of the organization's immediate control. The organization must then address the difficult task of placing, configuring, and updating the configuration of the monitoring agents or the policies used by the monitoring agents dispersed throughout the customer's system.
To address the task of updating the policy/configuration of the monitoring agents, the monitoring agents are generally required to poll the management server for policy/configuration updates at periodic intervals. If the policy/configuration updates are initiated centrally at the management server, then an infrequent polling period may be sufficient. For example, if the organization has a policy of centrally dispersing a configuration update, when necessary, only once a day at a particular time, then each client may poll the management server shortly thereafter the predetermined time to receive its configuration update.
However, a sophisticated quality of service system may allow a configuration or policy change to be initiated by a customer on a client machine. For example, with proper authorization, a customer's system administrator may use a configuration program on the client machine to initiate behavioral changes to the monitoring agent on the client machine. Typically, the service provided by the organization to its customers is delivered via the Internet using a browser-type application by the customer, and a browser-type application is also used by the system administrator to complete a configuration change form or a policy change form that is then sent across the Internet to the management server of the organization that is providing services to the customer. The management server then processes and stores the requested changes.
Since the monitoring agent is an independent application that is distinct from another program that initiates the policy changes, e.g., the monitoring agent is monitoring the availability and performance of a service accessed using a Web browser, the configuration or policy change is not initiated within the monitoring agent. The configuration or policy change is unknown to the monitoring agent until the monitoring agent polls the management server and receives any information necessary for its behavior.
In this situation, since the customer would expect that an update submitted from a client machine should be quickly reflected in the behavior of the monitoring agent on the client machine, the monitoring agent must frequently poll the management server in order to receive the update in a timely manner. For example, the monitoring agent may be required to poll the management server several times a minute. Depending upon the service offered and the relationship between the customer and the organization providing the service, frequent polling from many clients may be burdensome to the management server. However, the organization that operates the management server may have guaranteed a quality of service to a customer that is a large, multinational corporation with thousands of client machines accessing the provided service. From the organization's perspective, frequent polling from thousands of client machines may require several management servers dedicated to processing only polling requests. On the other hand, from the customer's perspective, frequent polling minimizes the time lag between policy or configuration changes and the behavior of the monitoring agent.
Therefore, it would be advantageous to provide a manner of updating a monitoring agent to receive policy or configuration changes without using a polling mechanism. It would be particularly advantageous to provide an update mechanism that minimizes the time lag between the initiation of the policy or configuration update and the receipt of the update by the monitoring agent.